This invention relates generally to computer systems and to graphical user interfaces for computer systems. More particularly, the present invention relates to apparatus and methods for storing objects in a digital computer application window.
Application windows are often used with computer systems implementing graphical user interfaces (GUIs). Many people find that computers having GUIs are easier to learn and use than comparable computers without GUIs. Computers having GUIs include desktop units, such as the popular Apple.TM. Macintosh.TM. and IBM.TM.-compatible computers, notebooks and subnotebooks, such as the popular Apple.TM. Powerbooks.TM. and IBM.TM. ThinkPads, as well as pen-based computers such as the Apple.TM. Newton.TM.. For ease of understanding and without limiting the scope of the invention, a Power Macintosh.TM. computer system manufactured by Apple.TM. Computer Inc. of Cupertino, Calif. is selected for illustration purposes. However, it should be noted that the discussion below is equally applicable to computers of other makes and models.
The present invention is well suited for storing objects in an easily accessible manner in an application window. As the term is used herein, an object may represent a textual data object such as a block of alphanumeric or ideographic characters. An object may also represent a graphical data object such as a pixel dot, a circle, a line, or a group of graphical data objects that is designated for manipulation as one unit. Further, objects may also represent functions that implements a software "tool" for use in manipulating other objects. As is well known to those familiar with the object-oriented programming approach, objects may also contain both data and functions.
FIG. 1 shows a typical prior art GUI screen on a computer screen 10. Computer screen 10 represents the area within which images, texts, and other types of data objects can be displayed and manipulated. On an Apple Power Macintosh, computer screen 10 often includes a desktop image 14 which is produced by a Macintosh operating system. Desktop image 14 often includes a menu bar 18 and a desktop display area 20. Within desktop display area 20, shown are a number of icons 22, 24 and 26 representing different objects. For example, icon 22 represents a hard disk drive, icon 24 represents a "trash can" in which files can be deposited to be deleted, and icon 26 represents a folder entitled "desk stuff," which may contain application programs and files of various types.
Menu bar 18 preferably includes a number of menu labels 28, 30, and 32 for implementing menus, as are well known to Macintosh users. Desktop image 14 also includes a screen cursor shown in the form of an arrow 34. The screen cursor works in cooperation with a pointing device, for example, a trackball, a mouse, a joystick, special keys on a computer keyboard, or the like. As is well known to those of skill in the art, the screen cursor may be moved to different positions on computer screen 10 and may assume different forms.
There is also shown in FIG. 1 an application window 16 within desktop image 14. Application window 16 represents an instance of a utility program known as Finder.TM., also manufactured by Apple Computer, Inc. of Cupertino, Calif. At the top of window 16, shown is a title bar 36. As shown in FIG. 1, title bar 36 identifies the current window as "A Folder." Each window has associated with it a window display area 37 within which information from a data set associated with window 16 may be displayed and manipulated. For ease of manipulation of the data objects in the aforementioned data set, it is usually desirable to keep window display area 37 as large and as uncluttered as possible. Optional vertical scroll bar 38 and horizontal scroll bar 40 are preferably located at the vertical and horizontal edges of window 16. Window 16 can be moved around desktop display area 20, preferably by dragging on title bar 36. Window 16 can also be resized, preferably by dragging a size box 42 to expand or contract window 16. Further, window 16 can also be closed, preferably by clicking on a close box 44 in the upper left corner of window 16.
Windows sometimes include information regarding the software currently under use and the current system capacity. In FIG. 1, textual information box 46 in window 16 indicates that there is currently 0 item in "A Folder," 53.2 megabytes of total memory capacity on a disk storage device, of which 9.7 megabytes of memory is available. The functions and use of the aforementioned items, which are typical in a GUI environment, are well known to those familiar with the Apple.TM. Macintosh.TM..
For the purposes of the present invention, an application program is any computer program that utilizes GUI-based windows in the display and manipulation of data. As the term is used herein, application programs may include programs used to manipulate textual, graphical, or voice data, to perform system utilities, to facilitate electronic communication, or the like. An application window represents a visual representation of one instance of an application program that operates on a particular data set within a window. In a typical GUI environment, there are often multiple application windows simultaneously open on computer screen 10, each of which may be an instance of a particular application program.
FIG. 2 shows an application window 50 representing a typical graphics program used to create graphical as well as text data. Application window 50 is entitled "Main Window" as shown in title bar 36 of application window 50. Within window display area 37 of window 50, shown are a plurality of graphical data objects 54, 56, 58, and 60. Since application window 50 represents an instance of a graphics application program, the data set manipulated thereby is displayed primarily in the form of graphical data objects. It should be noted, however, that the data objects displayed in window display area 37 may also include texts, numbers, processes, and other forms of data representation.
Application window 50 further includes a plurality of tools from which the user may select to manipulate the data set associated with application window 50. For example, there is provided a tool, represented by icon 62, for rotating graphical data objects in window display area 37. Another tool, represented by icon 64, is provided for enlarging a graphical data object. As shown in FIG. 2, there are other tools having other functions displayed in window 50 that are available for selection by the user. As is well known to users of GUIs, when the icon representing a tool is selected, preferably by a process known as "clicking" with a mouse (wherein the button of the mouse is pressed once), the function associated with that tool becomes available to the user.
In a typical drawing program, such as MacDraw.TM. by Apple Computer, Inc. of Cupertino, Calif., there are numerous tools furnished for manipulating data. If possible, each tool is preferably represented visually in the application window by a unique icon. This is because in GUIs, the user gain access to the function of a tool primarily by selecting, with a pointing device, the icon representing the tool. However, when icons representing tools are displayed, they take up space and consequently cause the window display area to be diminished. In some programs, there is often insufficient space in the application window to display all furnished icons. To solve the dilemma, users of GUIs often keep only a small set of often-used icons in the application window. The remainder are kept off the application window, incapable of being conveniently accessed.
In the prior art, a variety of techniques have been attempted to make more of the icons accessible to the user at any given time without diminishing the window display area. One technique involves the use of menus, also known as pop up or pull down menus. Each menu contains a group of tools whose symbolic representations are logically grouped together according to functionality. Every application window, regardless of its data set, contains an identical set of menus. The use of menus are familiar to users of GUIs.
However, menus are inflexible because the user cannot conveniently associate a particular set of menus with a particular data set. Such inflexibility makes the application program less user-friendly because different users of the same application program may have different needs. Even if there is only one user, that user may desire to use different sets of tools with different sets of data.
Furthermore, menus are read-only storage mechanism. There are times when a user may wish to store data objects instead of tools in a storage mechanism for later use. For example, a chemist writing a laboratory report may wish to store a list of often-used but complex chemical formulas in a storage mechanism that can be conveniently accessed for later use. As a further example, a graphic illustrator may wish to store a set of often-used graphical data objects for later access and use. Menus cannot be conveniently written into to accommodate the user's storage needs.
Further, the prior art menus are also inflexible with regard to the arrangement of their menu labels in the application window. In many prior art computer programs, there is a fixed number of menu labels, each of which is constant in size and displayed in an unalterable arrangement in the application window. There is no way to flexibly and easily modify the size of the menu labels or rearrange them in order to further maximize the window display area.
Others have also attempted to address the above problems using a variety of apparatus and methods.
U.S. Pat. No. 5,305,435 to Bronson discloses a novel computer interface which stimulates familiar document handling activities based upon a unique display metaphor representative of a standard office filing system and work area of a desk. The display system includes multi-windows which are displayed in a central screen area designated for just active computer windows. The interface further includes designating the edge areas of the screen for displaying window tabs of inactive windows. The window tabs are arranged in a way to simulate an integrated filing system, and to provide a convenient method of organizing and viewing computer files.
U.S. Pat. No. 5,202,828 to Vertelney et al. discloses an interface element having a plurality of user interface elements for marking, finding, organizing, and processing data within documents stored in an associated computer system. Each element typically has an appearance which is uniquely related to the data or the function the element is designed to represent or perform, respectively. In their simplest form, these elements are only used to mark data within a document. Each element, however, can also be programmed to cause the computer to perform some function in association with the marked data, such as printing the data or mailing the data to someone. A user can select particular data within a document using an element and have that data associated with the element in memory. Data marked with common elements can be found by searching for a particular representative element in memory. Users can create their own elements with their own desired functionality, and modify existing elements. Elements can also be compounded together so as to cause a combination of tasks to be performed by simply activating one element.
U.S. Pat. No. 4,899,136 to Beard et at. discloses a multiprocessor system comprising concurrent display of video data reflecting the operation of two processors in discrete portions of a single display screen with a user interface adapted for interaction with both processors. One processor controls the entire display while allocating a portion of the display screen for the use of the other processor which processor emulates a target processor system, for example, the IBM PC. A user interface is represented on the display screen in the form of metaphoric objects, called icons, with which the user can interact by changing the input focus to a designated object by visually pointed to it via the input means, which thereafter permits manipulation of the designated object or interaction with data input/output relative to the designated object. This input means is also used to initially change the input focus to either the allocated emulating processor screen portion or to the remaining portion of the central processor display screen prior to interaction with the metaphoric objects in a selected screen portion, the change of the input focus causing subsequent user input via the input means to be directed to the selected screen portion until interrupted by a change in focus input to the other of the screen portions by the user via the input means. An icon may be a representation of a virtual object, such as a virtual floppy disk, that is accessible in either the host system world or in the emulating processor world even through the virtual floppy disk may have a filing system alien to the host system world.
Commonly assigned U.S. patent application Ser. No. 08/090,470, filed Jul. 12, 1993 by Ludolph et al., discloses a display oriented software user interface for the generation and display of a secondary display region within a primary display region of a computer controlled information management system having windows or localized sections of displayable information and icons. The secondary display region, Desk Drawer, providing advanced capabilities to the management system by generating a readily accessible region wherein icons may be placed and always accessed thereafter when the secondary display region is present. The presence of the secondary display region may be governed by a separate screen region responsive to the cursor display position. The Ludolph et al. application is assigned at the time of invention to the Assignee of the present invention and is currently owned by the same Assignee.
Commonly assigned U.S. patent application Ser. No. 08/075,278, filed Jun. 11, 1993 by Conrad et al., discloses a window management mechanism which allows a user to open a window as a drawer or, perhaps more appropriately named, a pop-up window. The drawer is an opened window that a user has dragged down to a drawer region at the bottom of the screen such that only the title bar or some drawer handle illustration is left showing. When the user does this, the window remains open but is kept off screen. The user may momentarily pop the window back onto the screen by clicking on the window title bar or drawer handle, or by dragging the cursor into the window icon during a drag. The window stays on screen as long as no other windows are selected. As soon as a user selects another window, or opens a file with a double click within the drawer, the window slides back off screen. This allows the user to set up easy access windows. Another feature of a drawer window allows the user to open them during a drag. To do so, the user drags an object or the cursor into the drawer window that is desired to be opened. When the cursor touches the bottom of the screen, or an area within a threshold of the bottom of the screen, the drawer window slides open a notch at a time. As long as the user pushes against the bottom or remains in this threshold region, the drawer slides open. The Conrad et al. application is assigned at the time of invention to the Assignee of the present invention and is currently owned by the same Assignee.
Although the aforementioned applications and patents address some aspects of the problems associated with the storage of objects in an application window, difficulties remain. Consequently, there exists a need for improved apparatus and methods for efficiently storing objects in an application window.